#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
使用PIL库提取GIF第一帧的简单方法
"""

try:
    from PIL import Image
    import os
    
    def extract_first_frame_pil(gif_file, output_file="first_frame.png"):
        """使用PIL提取GIF第一帧"""
        try:
            # 打开GIF文件
            with Image.open(gif_file) as img:
                print(f"GIF信息:")
                print(f"  尺寸: {img.size}")
                print(f"  模式: {img.mode}")
                print(f"  帧数: {getattr(img, 'n_frames', 1)}")
                
                # 获取第一帧
                img.seek(0)  # 跳转到第一帧
                
                # 转换为RGB模式（如果需要）
                if img.mode != 'RGB':
                    img = img.convert('RGB')
                
                # 保存第一帧
                img.save(output_file)
                print(f"第一帧已保存为: {output_file}")
                return True
                
        except Exception as e:
            print(f"使用PIL提取失败: {e}")
            return False
    
    def main():
        gif_file = "call.gif"
        
        if not os.path.exists(gif_file):
            print(f"错误: 文件 {gif_file} 不存在")
            return
        
        if extract_first_frame_pil(gif_file):
            print("提取成功！")
        else:
            print("提取失败！")
    
    if __name__ == "__main__":
        main()

except ImportError:
    print("PIL库未安装，正在安装...")
    import subprocess
    import sys
    
    try:
        subprocess.check_call([sys.executable, "-m", "pip", "install", "Pillow"])
        print("PIL库安装成功，请重新运行脚本")
    except Exception as e:
        print(f"安装PIL库失败: {e}")
        print("请手动安装: pip install Pillow")
